Avoiding Equivariance in Alpha-Prolog

نویسندگان

  • Christian Urban
  • James Cheney
چکیده

αProlog is a logic programming language which is well-suited for rapid prototyping of type systems and operational semantics of typed λ-calculi and many other languages involving bound names. In αProlog, the nominal unification algorithm of Urban, Pitts and Gabbay is used instead of first-order unification. However, although αProlog can be viewed as Horn-clause logic programming in Pitts’ nominal logic, proof search using nominal unification is incomplete in nominal logic. Because of nominal logic’s equivariance principle, complete proof search would require solving NP-hard equivariant unification problems. Nevertheless, the αProlog programs we studied run correctly without equivariant unification. In this paper, we give several examples of αProlog programs that do not require equivariant unification, develop a test for identifying such programs, and prove the correctness of this test via a proof-theoretic argument.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Equivariance, Variational Principles, and the Feynman Integral

We argue that the variational calculus leading to Euler’s equations and Noether’s theorem can be replaced by equivariance and invariance conditions avoiding the action integral. We also speculate about the origin of Lagrangian theories in physics and their connection to Feynman’s integral.

متن کامل

Advances in Property-Based Testing for \alpha Prolog

αCheck is a light-weight property-based testing tool built on top of αProlog, a logic programming language based on nominal logic. αProlog is particularly suited to the validation of the meta-theory of formal systems, for example correctness of compiler translations involving name-binding, alpha-equivalence and capture-avoiding substitution. In this paper we describe an alternative to the negat...

متن کامل

The YAIL: An Intermediate Language for the Native Compilation of Prolog Programs

A major goal for any Prolog implementor is to achieve the best performance for applications. Advanced compilation is essential for high performance. The last few years have seen improvements in Prolog compilation technology resulting in a return to the idea of native code execution. We present work on designing a novel native code compiler for Prolog. The compiler uses an intermediate language ...

متن کامل

SWI-Prolog and the web

Prolog is an excellent tool for representing and manipulating data written in formal languages as well as natural language. Its safe semantics and automatic memory management make it a prime candidate for programming robust Web services. Where Prolog is commonly seen as a component in a Web application that is either embedded or communicates using a proprietary protocol, we propose an architect...

متن کامل

Advances in Property-Based Testing for $α$Prolog

αCheck is a light-weight property-based testing tool built on top of αProlog, a logic programming language based on nominal logic. αProlog is particularly suited to the validation of the meta-theory of formal systems, for example correctness of compiler translations involving name-binding, alpha-equivalence and capture-avoiding substitution. In this paper we describe an alternative to the negat...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2005